package 面试题21_调整数组顺序使奇数位于偶数前面;

/**
 * @Author ：xu_xiaofeng.
 * @Date ：Created in 15:19 2021/3/10
 * @Description：
 */
public class Solution {
    public int[] exchange(int[] nums) {
        if (nums.length <= 0) return new int[0];

        // 定义头尾双指针
        int pBegin = 0;
        int pEnd = nums.length - 1;

        while (pBegin < pEnd) {

            // 头指针遇到偶数停下
            while (pBegin < pEnd && ((nums[pBegin] & 1) != 0)) {
                pBegin++;
            }

            // 尾指针遇到奇数停下
            while (pBegin < pEnd && ((nums[pEnd] & 1) != 1)) {
                pEnd--;
            }

            if (pBegin < pEnd) {
                int temp = nums[pBegin];
                nums[pBegin] = nums[pEnd];
                nums[pEnd] = temp;
            }
        }

        return nums;
    }
}
